package com.ruoyi.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据权限过滤注解
 * 用于在方法上标记数据权限过滤规则，实现基于部门和用户的数据权限控制
 *
 * @author ruoyi
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {
    /**
     * 部门表的别名
     * 用于在SQL查询中指定部门表的别名，以便进行数据权限过滤
     *
     * @return 部门表别名，默认为空字符串
     */
    public String deptAlias() default "";

    /**
     * 用户表的别名
     * 用于在SQL查询中指定用户表的别名，以便进行数据权限过滤
     *
     * @return 用户表别名，默认为空字符串
     */
    public String userAlias() default "";

    /**
     * 权限字符（用于多个角色匹配符合要求的权限）默认根据权限注解@ss获取，多个权限用逗号分隔开来
     * 指定需要匹配的权限字符串，支持多个权限的组合匹配
     *
     * @return 权限字符，默认为空字符串
     */
    public String permission() default "";
}

